import axios from 'axios';
import { ElMessage } from "element-plus"; // 引入 Element Plus 的消息提示组件

//定义一个变量
const baseURL = 'http://localhost:8080';
//重构axios对象
const ww = axios.create({baseURL});

import {jwts} from '@/stores/jwt.js'

//请求拦截器
ww.interceptors.request.use(
    //成功的回调
    config=>{
        console.log('请求成功');
        const token=jwts();
        const jwt = token.jwt;
        console.log(jwt);
        if(jwt){
            config.headers.Authorization = jwt;
        }

        return config;
    },
    //失败的回调
    err=>{
        alert('请求失败')
        //异步的状态转换为失败的状态，最终就会走到catch进行处理
        return Promise.reject(err)
    }
)
//响应拦截器
ww.interceptors.response.use(
    //成功的回调
    res=>{

        console.log('响应成功');
        console.log(res);
        if(res.data.code==40101){
            ElMessage.warning(res.data.msg);
            //跳转到登录页面
            setTimeout(()=>{
                window.location.href='/'
                //清除token
                jwts().clearjwt();
            },1000)
            return;
        }else if (res.data.code==40100) {
            ElMessage.warning(res.data.msg+'请联系管理员');
            return;
        }else{
        // 把后端响应的内容中的data给返回出去
             return res.data;
        }
       
    },
    //失败的回调
    err=>{
        alert('服务器异常')
        //异步的状态转换为失败的状态，最终就会走到catch进行处理
        return Promise.reject(err)
    }

    
)


// 把 改装之后的axios对象  导出
export default ww;
  